home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 35
/
Amiga Format AFCD35 (Issue 119, Jan 1999).iso
/
-in_the_mag-
/
reader_requests
/
fredobbutils
/
bbsrc
/
megaboot1_30.s
< prev
next >
Wrap
Text File
|
1998-11-06
|
5KB
|
249 lines
*** Bootblock spécial: MEGABOOT 1.30 by PIQ of VORTEX 42
* An old utility boot (it was great with kickstart 1.3)
* Won't work under 2.0+
Start:
dc.b "DOS",0
dc.b "SUM "
val: dc.l 1
Main:
move.l 4.w,a6
MOVEM.L D0-A6,-(A7)
LEA val(PC),A0
LEA $DFF000,A5
CMP #33,$14(A6) ;kickstart 1.2 ?
BEQ.B LB_0028
TST.L (A0)
BNE.B LB_003A
BRA.B LB_0030
LB_0028 LEA val(PC),A0
TST.L (A0)
BEQ.B LB_003A
LB_0030 MOVE #$0F00,$0180(A5)
BRA.W LB_0100
LB_003A MOVE #$0008,$0180(A5)
MOVE.L #$BFEC01,$010C.W
BTST #6,$00BFE001
BNE.W LB_00DC
LEA LB_02A6(PC),A0
TST.L $004E(A6)
BEQ.B LB_0060
CLR.B (A0)
LB_0060 BSR.W LB_0110
MOVE.L #$00078000,$0108.W
move.l $9c(a6),a0 ;execbase->gfxbase
MOVE.L A0,$0100.W
MOVE.L $26(A0),$0104.W ;old coplist
BSR.W LB_01AA
BSR.W LB_01BA
LEA CopList(PC),A0
MOVE.L A0,$0080(A5)
MOVE.W #$8380,$0096(A5)
BSR.W LB_019A
LB_0094 LEA $00BFD100,A0
ORI.B #$80,(A0)
ANDI.B #$F7,(A0)
BSR.W LB_0140
CMPI.B #$5F,D0
BEQ.W LB_015E
CMPI.B #$5D,D0
BEQ.W LB_035C
CMPI.B #$5B,D0
BEQ.W LB_0148
CMPI.B #$59,D0
BEQ.B LB_00FC
CMPI.B #$57,D0
BEQ.B LB_010A
CMPI.B #$55,D0
BNE.B LB_0094
LB_00D0 MOVE.L $0104.W,$0080(A5)
MOVE.W #$0100,$0096(A5)
LB_00DC MOVE.L #$FF01FF07,$008E(A5)
MOVEM.L (A7)+,D0-A6
LEA dosname(pc),A1
JSR -96(A6)
MOVE.L D0,A0
MOVE.L 22(A0),A0
MOVEQ #0,D0
RTS
LB_00FC CLR.L $26(A6)
LB_0100 MOVE.L #$F800D2,$80.W
TRAP #0
LB_010A CLR.L $0026(A6)
BRA.B LB_00D0
LB_0110 MOVEM.L A0/A1/A6,-(A7)
LEA diskname(pc),A1
moveq #0,D0
JSR -$01F2(A6)
MOVE.L D0,A6
MOVEQ #2,D0
JSR -$001E(A6)
BEQ.B LB_013A
MOVEQ #1,D0
JSR -$001E(A6)
BEQ.B LB_013A
LEA LB_02C0(PC),A0
MOVE.B #4,(A0)
LB_013A MOVEM.L (A7)+,A0/A1/A6
RTS
LB_0140 MOVE.L $010C.W,A0
MOVE.B (A0),D0
RTS
LB_0148
suba.l a0,a0
LEA $40000,A1
MOVE #$BFFF,D0
BSR.W LB_0354
BRA.W LB_0094
LB_015E LEA LB_02A6(PC),A0
TST.B (A0)
BNE.W LB_0094
LEA $00FC0136,A0
LEA $0166.W,A1
MOVE.W #$4E75,-(A1)
MOVEq #$18,D0
LB_017A MOVE.L -(A0),-(A1)
DBF D0,LB_017A
JSR $013C.W
LEA $40000,A7
SUBA.L A4,A4
LEA $0676.W,A6
MOVE.L #$FC0208,$80.W
TRAP #0
LB_019A LEA $0180(A5),A0
MOVEQ #$1F,D0
LB_01A0 MOVE.W #$0008,(A0)+
DBF D0,LB_01A0
RTS
LB_01AA MOVE.L $0108.W,A0
MOVE.W #$0BFF,D0
LB_01B2 CLR.L (A0)+
DBF D0,LB_01B2
RTS
LB_01BA MOVE.L $0100.W,A6
LEA -$1000(A0),A1
JSR -$00C6(A6) ;InitRastport()
MOVE.L $94(A6),$34(A1)
MOVE #8,$3A(A1)
MOVE #4,$1C(A1)
LEA $80(A1),A0
MOVE.L A0,4(A1)
MOVEQ #1,D0
MOVE #640,D1
MOVE #200,D2
JSR -$0186(A6) ;InitBitMap()
MOVE.L $0108.W,$0088(A1)
LEA Mega.txt(PC),A0
LB_01F8 CLR D0
CLR $24(A1)
MOVE.B (A0)+,$38(A1)
MOVE.B (A0)+,D0
MOVE.B (A0)+,$25(A1)
MOVE.B (A0)+,$27(A1)
BSR.B LB_0232
CLR $24(A1)
MOVE.B -2(A0),$25(A1)
ADD #320,$24(A1)
BSR.B LB_0232
ADD D0,A0
TST.B 1(A0)
BNE.B LB_01F8
MOVE.L 4.W,A6
RTS
LB_0232 MOVEM.L D0/A0/A1,-(A7)
JSR -$003C(A6)
MOVEM.L (A7)+,D0/A0/A1
RTS
CopList:
DC.w $0100,$2200,$0102,$0020
DC.w $0104,$0000,$008E,$2C81
DC.w $0090,$F4C1,$0092,$0038
DC.w $0094,$00D0,$00E0,$0007
DC.w $00E2,$8028,$00E4,$0007
DC.w $00E6,$8000,$0180,$0008
DC.w $0182,$0CC0,$0184,$0000
DC.w $0186,$0CC0,$FFFF,$FFFE
dosname:dc.b "dos.library",0
diskname:dc.b "disk.resource",0
Mega.txt:
DC.B $00
DC.B '"',$18,$0A
DC.B 'MegaBoot 1.30'
LB_02A6
DC.B $04,$16,'2',$1C,'F1. Remove f'
LB_02B6
DC.B 'ast memory'
LB_02C0
DC.B $00
DC.B $1A,'2&F2. Remove external drives',$00
DC.B $09,'20F3. Copy*',$00
DC.B $0E,'2:F4. Hard '
LB_02F8
DC.B 'reset',$00
DC.B $16,'2DF5. No dead-end reset*',$00
LB_0318
DC.B $0F,'2NF6. Normal bo'
LB_0328
DC.B 'ot',$00
DC.B '"',$18,'a All coding by PIQ of V'
LB_0346
DC.B 'ortex '
LB_034C
DC.B '42 ',$00
even
LB_0354 MOVE.L (A0)+,(A1)+
DBF D0,LB_0354
RTS
LB_035C LEA LB_02C0(PC),A0
CMP.B #4,(A0)
BEQ.W LB_0094
LB_0368 MOVEQ #$3F,D0
LEA LB_0382(PC),A0
LEA $0300.W,A1
MOVE.L A1,$002E(A6)
BSR.B LB_0354
BSR.B LB_03A8
BRA.W LB_0100
LB_0382 MOVEM.L D0-A6,-(A7)
LEA $0300.W,A0
LB_038A MOVE.L A0,$002E(A6)
BSR.B LB_03A8
LEA LB_0400(PC),A0
MOVE.L -$0064(A6),(A0)
LEA LB_03BC(PC),A0
LB_039E MOVE.L A0,-$0064(A6)
MOVEM.L (A7)+,D0-A6
RTS
LB_03A8 CLR D0
LB_03AA LEA $22(A6),A0
MOVEQ #$17,D1
LB_03B0 ADD (A0)+,D0
DBF D1,LB_03B0
NOT D0
MOVE D0,(A0)
LB_03BA RTS
LB_03BC CMPA.L #$00FC47FC,a1
BNE.B LB_03FE
LEA $00FC47FC,A1
MOVEM.L D0/D1/A0,-(A7)
LEA $0100.W,A0
MOVEQ #$73,D1
LB_03D6 MOVE.L (A1)+,(A0)+
DBF D1,LB_03D6
LEA $0100.W,A0
LEA $44(A0),A1
MOVE.L A1,$16(A0)
MOVE.L #$26FCFFFF,$0188(A0)
MOVE.L #$FFFF4E75,$018C(A0)
MOVE.L A0,A1
MOVEM.L (A7)+,D0/D1/A0
LB_03FE dc.w $4ef9
LB_0400 dc.l 0
End:
dcb.b 512*2,0